What is has-value?
The has-value npm package is used to check if a value exists, is not empty, or is not undefined. It is useful for validating data and ensuring that required fields are populated.
What are has-value's main functionalities?
Check if a value exists
This feature checks if a given value exists. In this example, the string 'Hello World' is checked, and since it is a non-empty string, the result is true.
const hasValue = require('has-value');
console.log(hasValue('Hello World')); // true
Check if an object property has a value
This feature checks if a specific property of an object has a value. In this example, the object has a property 'name' with a value 'John Doe', so the result is true.
const hasValue = require('has-value');
const obj = { name: 'John Doe' };
console.log(hasValue(obj, 'name')); // true
Check if an array has a value
This feature checks if an array has any values. In this example, the array [1, 2, 3] is checked, and since it contains elements, the result is true.
const hasValue = require('has-value');
const arr = [1, 2, 3];
console.log(hasValue(arr)); // true
Check if a nested object property has a value
This feature checks if a nested property within an object has a value. In this example, the nested property 'user.name' is checked, and since it has a value 'Jane Doe', the result is true.
const hasValue = require('has-value');
const nestedObj = { user: { name: 'Jane Doe' } };
console.log(hasValue(nestedObj, 'user.name')); // true
Other packages similar to has-value
lodash
Lodash is a popular utility library that provides a wide range of functions for manipulating arrays, objects, and other data types. It includes a method `_.has` to check if a property exists in an object, which is similar to the functionality provided by has-value.
underscore
Underscore is another utility library similar to Lodash. It provides a method `_.has` to check if an object contains a given property. While it does not specifically check for non-empty values, it can be used in combination with other methods to achieve similar results.
validator
Validator is a library for string validation and sanitization. It includes methods to check if a string is empty or not, which can be used to validate the presence of values in a similar way to has-value.
has-value
Returns true if a value exists, false if empty. Works with deeply nested values using object paths.
Install
Install with npm:
$ npm install has-value --save
Works for:
- booleans
- functions
- numbers (pass
true
as the last arg to treat zero as a value instead of falsey) - strings
- nulls
- object
- arrays
Usage
Works with nested object paths or a single value:
var hasValue = require('has-value');
hasValue({a: {b: {c: 'foo'}}} 'a.b.c');
hasValue('a');
hasValue('');
hasValue(1);
hasValue(0);
hasValue(0, true);
hasValue({a: 'a'}});
hasValue({}});
hasValue(['a']);
hasValue([]);
hasValue(function(foo) {});
hasValue(function() {});
hasValue(true);
hasValue(false);
isEmpty
To do the opposite and test for empty values, do:
function isEmpty(o, isZero) {
return !hasValue.apply(hasValue, arguments);
}
Related projects
You might also be interested in these projects:
- get-object: Get a property from an object using dot (object path) notation. | homepage
- get-property: Get a nested property or its value from an object using simple
a.b.c
paths. | homepage - get-value: Use property paths (
a.b.c
) to get a nested value from an object. | homepage - set-value: Create nested values and any intermediaries using dot notation (
'a.b.c'
) paths. | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Building docs
Generate readme and API documentation with verb:
$ npm install verb && npm run docs
Or, if verb is installed globally:
$ verb
Running tests
Install dev dependencies:
$ npm install -d && npm test
Author
Jon Schlinkert
License
Copyright © 2016, Jon Schlinkert.
Released under the MIT license.
This file was generated by verb, v, on March 27, 2016.